Semiconductor memory devices are memory devices implemented using a semiconductor such as silicon (Si), germanium (Ge), gallium arsenide (GaAs), and indium phosphide (InP). In general, semiconductor memory devices may be classified into volatile memory devices and nonvolatile memory devices.
Volatile memory devices lose their stored data when their power supplies are interrupted. Nonvolatile memory devices may include a static RAM (SRAM), a dynamic RAM (DRAM), and a synchronous DRAM (SDRAM). Nonvolatile memory devices are memory devices that retain their stored data even when their power supplies are interrupted. Nonvolatile memory devices may include a read only memory (ROM), a programmable ROM (PROM), an electrically programmable ROM (EPROM), an electrically erasable and programmable ROM (EEPROM), a flash memory device, a phase change RAM (PRAM), a magnetic RAM (MRAM), a resistive RAM (ReRAM), and a ferroelectric RAM (FRAM).
Flash memory device is being used in various fields because of advantages of a low noise, a high capacity, etc. A flash memory device may include memory devices such as a floating gate memory cell, a charge trap flash memory cell, etc. Memory cells of the flash memory device store data by changing threshold voltages of the memory cells. However, threshold voltages of the memory cells may be changed due to a physical characteristic of the memory cell or an external factor (e.g., temperature, time, etc.). In this case, stored data of the memory cells may be deteriorated and thereby affect reliability of the memory cell or the data. Recently, a memory controller has been introduced that manages various information (e.g., temperature, time, the number of times data is written, the number of times data is read and the number of times of program erase cycles), and various error correction methods and data management methods for addressing the reliability problem described above are being developed based on the information being managed.